Maintaining message privacy on an exposed display device

ABSTRACT

Responsive to receipt of a first instant message during a first mode operation of an instant messaging program while a computer is driving an exposed output device, the first instant message is blocked. Responsive to receipt of a second instant message during a second mode operation while the computer is driving the exposed output device, an identification of a sender of the second instant message is displayed and a query is issued to determine whether instant message content should be displayed on the exposed output device. Responsive to receipt of a third instant message during a third mode operation while the computer is driving the exposed output device, it is determined that a sender of the third instant message is on a priority list, an identification of the sender is displayed, and a query is issued to determine whether instant message content should be displayed on the exposed output device.

BACKGROUND

The present invention is a process for using electrical computers ordata processing machines to transfer data via one or more communicationsmedia. In particular, the present invention comprises an improveddemand-based messaging system that enables instant message recipients toprotect their privacy on an exposed display device.

Demand-based messaging is a communication service that allows users toexchange message data, such as text, over a network or othercommunications media, in real time. Probably the most common medium forexchange is the Internet. Instant messaging (IM) is perhaps the mostwidely known and used embodiment of demand-based messaging. Today, mostnetwork and online service providers offer some form of IM service.

IM users typically use a networked computer and IM client software toexchange messages with one another in conversational style. An IM clientprovides an interface for users to compose, send, receive, and read textmessages. IM sessions (colloquially referred to as “chats”) are oftenlengthy, with multiple participants each taking many turns “speaking” inthe chat window. Examples of IM clients that are popular today includeIBM's SameTime, MSN Messenger, and Yahoo/AOL Instant Messenger.

Typically, an IM service alerts an IM client whenever a user receives aninstant message. The alert usually consists of a pop-up window or othervisual indication on a user's display, but may include an audibleindicator as well. Many IM clients, though, instantaneously display themessage on the user's display without any alert. Most IM clients alsoallow a user to maintain a private list of other IM users. The IM clientthen alerts the user when the other users in the private list areonline. Again, an alert usually consists of some visual or audibleindication, or any combination of the two. The alerted user can theninitiate a chat with the user in the private list who is online.

Occasionally, though, IM alerts can have unintended and undesirableeffects. For instance, if a user's display is exposed to an audiencewhen the user receives an alert, the alert also would be exposed to theentire audience. Examples of such exposed displays abound, includinglarge screens used for slide show presentations and network-basedmultimedia presentations. Even if a user is merely allowing an associateto view the user's display and receives an alert, the associate alsowould be able to see or hear the alert. Not only are such situationspotentially annoying or embarrassing, but they also could result in theunintended disclosure of personal or confidential information.

Presently, some IM clients can be configured to prevent some instancesof undesirable alerts. Most IM clients, in fact, can be configured toallow messages only from a preferred group of users (such as those inthe private list), to block messages only from certain users, or toblock all messages from all users. Moreover, IM technology continues toevolve at a rapid pace, and more sophisticated techniques for managing auser's privacy have been disclosed recently.

In particular, U.S. patent publication 2004/10808 discloses a system forautomatically managing a user's visibility and alerts on an IM network,based on the user's activity and activity-related preferences.Specifically, the user of such a system establishes preferences for anactivity, such as watching a particular channel or video stream. Thesystem then monitors the user's activity and manages IM alerts when theuser is engaged in an activity with established preferences.

U.S. patent publication 2004/143633 discloses another privacy managementtechnique in which privacy codes are exchanged between users beforedelivering an instant message. Although this technique protects themessage itself, the IM client still alerts a user in the same mannerafter the privacy codes are accepted.

Although the techniques described above may prevent some instances ofundesirable alerts on an exposed display, they also may prevent someinstances of desired alerts. Thus, there is still a need in the art foran IM client that provides users with more sophisticated control overthe information that the IM client displays on an exposed displaydevice. The invention described in detail below addresses this need.

SUMMARY

The invention described below is an improved instant-messaging systemthat minimizes undesirable alerts on an exposed output device. Thesystem typically includes an instant-messaging program operable on adata processing machine to receive message data from a caller over acommunications medium. The instant-messaging program isuser-configurable so that a user can select an alert mode that altersthe instant-messaging program's response to receiving message data froma caller when a user is operating an exposed output device.Specifically, a user can select either a “do-not-disturb” mode, a“designee” mode, a “caller-id” mode, or a “priority” mode. If the userselects the do-not-disturb mode, the instant-messaging program blocksthe message data and informs the caller that the user does not wish tobe disturbed. If the user selects the caller-id mode, theinstant-messaging program displays the caller's identification and thenprompts the user to accept or deny the message data. If the user selectsthe priority mode, the instant-messaging program displays the caller'sidentification only if the caller is in the user's “priority list.”

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features believed characteristic of the invention are setforth in the appended claims. The invention itself, however, as well asa preferred mode of use, further objectives and advantages thereof, willbe understood best by reference to the following detailed description ofan illustrative embodiment when read in conjunction with theaccompanying drawings, wherein:

FIG. 1 is a flowchart of the improved instant-messaging program;

FIG. 2 is a representative schematic of a memory having the componentsof the present invention; and

FIG. 3, FIG. 4, FIG. 5, FIG. 6, FIG. 7, FIG. 8, FIG. 9, FIG. 10, FIG.11, FIG. 12, FIG. 13, and FIG. 14 are flowcharts of computer programsand portions of computer programs embodying the present invention.

DETAILED DESCRIPTION

As is well-known in the computing arts, there are often a variety ofmeans for implementing any given processing function. In particular,most processing may be implemented with computer hardware, computersoftware, or any combination thereof. Likewise, the principles of thepresent invention are applicable to a variety of computer hardware andsoftware configurations, and the means for implementing any givenfunction described below, whether hardware or software, are illustrativeonly. From this description, any person of ordinary skill in thecomputing arts may readily develop equivalent combinations of hardwareand software that perform identical functions.

The term “computer hardware” or “hardware,” as used herein, refers toany machine or apparatus that is capable of accepting, performing logicoperations on, storing, or displaying data, and includes withoutlimitation processors and memory; the term “computer software” or“software,” refers to any set of instructions operable to cause computerhardware to perform an operation. A “computer,” as that term is usedherein, includes without limitation any useful combination of hardwareand software, and a “computer program” or “program” includes withoutlimitation any software operable to cause computer hardware to accept,perform logic operations on, store, or display data. A computer programmay, and often is, comprised of a plurality of smaller programmingunits, including without limitation subroutines, modules, functions,methods, and procedures. Thus, the functions of the present inventionmay be distributed among a plurality of computers and computer programs.The invention is described best, though, as a single computer programthat configures and enables one or more general-purpose computers toimplement the novel aspects of the invention. For illustrative purposes,the inventive computer program will be referred to as the“instant-messaging (IM)” program.

Means for enabling an operator to interact with such a computer programare well-known in the art. The particular means for enabling an operatorto enter or view data are of little significance to the novelty of thepresent invention, and generally are not described in detail here. Thus,for the purposes of describing a preferred embodiment, and unlessotherwise indicated, the inventive computer program interacts with anoperator through conventional means, such as keyboards, mice, videomonitors, input files, dialog boxes, voice recognition, or the like,although a person of ordinary skill in the art may readily recognizeadditional hardware, software, or any combination thereof that performsthe identical function.

The functions of the IM program described below are applicable to manydifferent messaging scenarios, including scenarios wherein any program,device driver, operating system, or the like attempts to notify a userof an event or condition through audio or visual cues. Nonetheless, forthe sake of simplicity and clarity, the IM program is described below inthe context of a typical chat session in which the term “caller” refersto any user of an IM system who attempts to initiate a chat with arecipient. The term “recipient,” as used herein, refers to any user ofthe IM program. Moreover, the following discussion generally assumesthat the recipient is using a computer with an exposed output device. Asused herein, an “output device” is any hardware operable to display datato a user, and an “exposed” output device is any output device visibleto anyone other than the recipient.

Additionally, the IM program is described below with reference to anexemplary network of hardware devices, as depicted in FIG. 1. A“network” comprises any number of hardware devices coupled to and incommunication with each other through a communications medium, such asthe Internet. A “communications medium” includes without limitation anyphysical, optical, electromagnetic, or other medium through whichhardware or software can transmit data. For descriptive purposes,exemplary network 100 has only a limited number of nodes, includingworkstation computer 105, workstation computer 110, server computer 115,and persistent storage 120. Network connection 125 comprises allhardware, software, and communications media necessary to enablecommunication between network nodes 105-120. Unless otherwise indicatedin context below, all network nodes use publicly available protocols ormessaging services to communicate with each other through networkconnection 125.

IM program 200 typically is stored in a memory, representedschematically as memory 220 in FIG. 2. The term “memory,” as usedherein, includes without limitation any volatile or persistent medium(computer readable medium), such as an electrical circuit, magneticdisk, or optical disk, or other computer-readable storage medium inwhich a computer can store data or software. A single memory mayencompass and be distributed across a plurality of media. Thus, FIG. 2is included merely as a descriptive expedient and does not necessarilyreflect any particular physical embodiment of memory 220. As depicted inFIG. 2, though, memory 220 may include additional data and programs. Ofparticular import to IM program 200, memory 220 may include prioritylist 230 with which IM program 200 interacts.

Operating systems, such as MICROSOFT WINDOWS, often know what types ofdevices are attached to the video adapter, and IM program 200 can obtainthe device type from the operating system. Similarly, IM program 200 canobtain information about other programs from the operating system. Forexample, if a user is running a network conferencing program, such asMICROSOFT NETMEETING or WEBEX, IM program 200 can obtain thisinformation from the operating system to determine that computer is inpresentation mode. Moreover, presentation programs such as MICROSOFTPOWERPOINT generally display slides in a window without a title bar whenin presentation mode. Thus, IM program 200 can query such a presentationprogram to see if the program's window has a title bar (FIG. 5, element502; FIG. 6, element 602). Other means for determining when aworkstation is in a presentation mode (FIG. 4, element 402) include:detecting if more than one output device is displaying the sameinformation (such as an external monitor and an LCD screen on a laptop)(FIG. 7, element 702; FIG. 11, element 1102); comparing an output devicewith a list of known projection devices (FIG. 8, element 802; FIG. 9,element 902; FIG. 10, element 1002; FIG. 12, element 1202); querying anoutput device for properties that are known to belong to projectiondevices (FIG. 13, element 1302); or querying the workstation's powermanagement mode to determine if the user has placed it in presentationmode or DVD viewing mode (FIG. 14, element 1402).

A situation may arise in which a user is giving a presentation on theuser's own output device and the user's own output device will not bedetected as an exposed output device. In such a situation, the user maymanually designate the user's output device as an exposed device.

Thus, if a projector or the like is attached, if the recipient is usingpresentation software in presentation mode (FIG. 4, element 402), IMprogram 200 can acquire this information from the operating system orother program. IM program 200 then assumes that the workstation isconfigured for a presentation and automatically selects the recipient'sdesired alert mode (FIG. 4, element 404; FIG. 8, element 804; FIG. 9,element 904; FIG. 10, element 1004). Optionally, this information may beused to update the recipient's status icon and status message as seen byother IM users. Or, rather than make an automatic selection, IM program200 may prompt the recipient to confirm the change in alert mode. In yetanother embodiment, the recipient configures IM program 200 to select adesired alert mode based upon schedule data in a personal informationmanager program or a calendar program, so that IM program 200 selectsthe appropriate mode if, according to the schedule data, the recipientis in a meeting or the like.

FIG. 3 is a flowchart of IM program 200. For illustrative purposes, thefollowing discussion of FIG. 3 assumes that IM program 200 is storedwithin the memory of workstation 105. Thus, once started (301) IMprogram 200 continuously monitors workstation 105 for configurationchanges, and monitors network connection 125 for message data addressedto the recipient using workstation 105. After starting IM program 200,the recipient selects a desired alert mode (305). Alternatively, therecipient configures IM program 200 to select a desired alert modeautomatically when workstation 105 is configured for a presentation(FIG. 4, element 404; FIG. 5, element 504; FIG. 8, element 804). Alertmodes are a means for identifying the recipient's messaging preferencesand processing message data during a presentation. In the embodimentdescribed below, alert modes include a “do-not-disturb” mode (FIG. 5,element 504), a “designee” mode, a “caller-id” mode (FIG. 6, element604; FIG. 9, element 904), and a “priority” mode (FIG. 7, element 704;FIG. 10, element 1004).

If the recipient selects the do-not-disturb mode (310), then IM program200 blocks incoming message data (315) and informs all callers that therecipient is busy (320).

If the recipient selects the caller-id mode (330), then IM program 200displays a caller's identification (335), such as the caller's real nameor email address, upon receiving the caller's message data (340). IMprogram 200 then prompts the recipient to accept or refuse the messagedata (345). If the recipient opts to accept the message data from thecaller, then IM program 200 displays the message data on the recipient'soutput device (350). If the recipient opts to refuse the message data,then IM program 200 blocks the incoming message data (315) and informsthe caller that the recipient is busy (320).

If the recipient selects the priority mode (360), then IM program 200blocks incoming message data (315) unless a caller is in the recipient'spriority list 230 (365). If the caller is in priority list 230, then IMprogram 200 displays the caller's identification (335), or in analternative embodiment, IM program 200 prompts the priority callerbefore displaying the caller's identification to confirm that themessage is urgent before displaying the caller's identification. IMprogram 200 then prompts the recipient to accept or refuse the messagedata (345). If the recipient opts to accept the message data from thepriority caller, then IM program 200 displays the message data on therecipient's output device (350). If the recipient opts to refuse themessage data, then IM program 200 blocks incoming message data (315) andinforms all callers that the recipient is busy (320). Note that, as usedherein, the term “priority list” refers to any list or other datastructure, such as an address book, in which the recipient hasidentified specific IM users for whom IM program 200 should displaytheir identification and prompt the recipient to accept or refuse themessage data. In a preferred embodiment, priority list 230 is internalto IM program 200 and IM program 200 provides an interface through whichthe recipient can manage priority list 230. For instance, IM program 200can automatically configure priority list 230 by adding everyone in therecipient's address book to the priority list. Other alternativesinclude IM program 200 identifying and adding peers and higher rankingassociates within an organization to priority list 230, or allowing therecipient to add individual contacts to priority list 230.

Finally, if the recipient selects designee mode (370), IM program 200notifies any sender that the recipient has designated an alternaterecipient and prompts the sender to confirm that the message should besent to the alternate recipient (375). If the sender confirms, IMprogram 200 then forwards any incoming message data to an alternaterecipient (380), whom the recipient designates in advance. The designeemode is particularly useful if the recipient will be giving apresentation, but has an associate either assisting with thepresentation or in the audience. In such a scenario, the recipient candesignate the associate as the alternate recipient, and the alternaterecipient then can respond to any messages that might affect meetinglogistics during the presentation. Moreover, in alternative oradditional embodiments of IM program 200, the designee mode may becombined with the priority mode or the caller-id mode to achieve evengreater control over IM alerts. In such an embodiment, either therecipient or the alternate recipient selects such an enhanced mode,specifying either the priority mode or the caller-id mode. Then, eitherbefore or after forwarding the message to the alternate recipient, IMprogram 200 would process the message as described in detail above.

As noted above, the functions of IM program 200 also are applicable toother scenarios, including scenarios wherein any program, device driver,operating system, or the like attempts to notify a user of an event orcondition while the user is operating an exposed output device. A dialogbox or the like is the most common notification means. In suchscenarios, a person of ordinary skill in the art may readily adapt theprogram to respond accordingly. Specifically, blocking the notificationas described above may not be the most appropriate response, and it maybe more advantageous merely to minimize the dialog box until the user isno longer operating the exposed output device. Alternatively, IM program200 could be adapted to place the dialog box immediately in thebackground, and restore the presentation to the foreground, thus hidingthe notification until the presentation is complete.

Preferred forms of the invention have been shown in the drawings anddescribed above, but variations in the preferred forms will be apparentto those skilled in the art. The preceding description is forillustration purposes only, and the invention should not be construed aslimited to the specific form shown and described. The scope of theinvention should be limited only the language of the following claims.

What is claimed is:
 1. A method, comprising: by a computer executing aninstant messaging program that operates in multiple different modes:while the instant messaging program is operating in a first mode,receiving a first instant message; responsive to receipt of the firstinstant message during the first mode operation of the instant messagingprogram and further responsive to determining that the computer isdriving an exposed output device, blocking the first instant message;while the instant messaging program is operating in a second mode,receiving a second instant message; responsive to receipt of the secondinstant message during the second mode operation of the instantmessaging program and further responsive to determining that thecomputer is driving the exposed output device, displaying anidentification of a sender of the second instant message and querying todetermine whether content of the second instant message should bedisplayed on the exposed output device being driven by the computer;while the instant messaging program is operating in a third mode,receiving a third instant message; responsive to receipt of the thirdinstant message during the third mode operation of the instant messagingprogram and further responsive to determining that the computer isdriving the exposed output device, each of: determining that a sender ofthe third instant message is on a priority list; and responsive todetermining that the sender of the third instant message is on thepriority list: displaying an identification of the sender of the thirdinstant message; and querying to determine whether content of the thirdinstant message should be displayed on the exposed output device beingdriven by the computer.
 2. The method of claim 1, where: determiningthat the computer is driving the exposed output device comprisesdetermining that the computer is driving the exposed output device withoutput of a presentation generated by a presentation program operatingin a presentation mode concurrently with the instant messaging programoperating in the first mode; and blocking the first instant messageaccording to the first mode operation of the instant messaging programcomprises blocking display of the received first instant message on theexposed output device during the concurrent presentation mode operationof the presentation program with the first mode operation of the instantmessaging program.
 3. A computer messaging system comprising: acommunications medium; an exposed output device; and a computerexecuting an instant messaging program that operates in multipledifferent modes, the computer being connected to the communicationsmedium and the exposed output device and configured to: while theinstant messaging program is operating in a first mode, receive a firstinstant message via the communications medium; responsive to receipt ofthe first instant message during the first mode operation of the instantmessaging program and further responsive to determining that thecomputer is driving the exposed output device, block the first instantmessage; while the instant messaging program is operating in a secondmode, receive a second instant message via the communications medium;responsive to receipt of the second instant message during the secondmode operation of the instant messaging program and further responsiveto determining that the computer is driving the exposed output device,display an identification of a sender of the second instant message andquery to determine whether content of the second instant message shouldbe displayed on the exposed output device being driven by the computer;while the instant messaging program is operating in a third mode,receive a third instant message via the communications medium;responsive to receipt of the third instant message during the third modeoperation of the instant messaging program and further responsive todetermining that the computer is driving the exposed output device, eachof: determine that a sender of the third instant message is on apriority list; and responsive to determining that the sender of thethird instant message is on the priority list: display an identificationof the sender of the third instant message; and query to determinewhether content of the third instant message should be displayed on theexposed output device being driven by the computer.
 4. The computermessaging system of claim 3, where, in being configured to: determinethat the computer is driving the exposed output device, the computer isconfigured to determine that the computer is driving the exposed outputdevice with output of a presentation generated by a presentation programoperating in a presentation mode concurrently with the instant messagingprogram operating in the first mode; and block the first instant messageaccording to the first mode operation of the instant messaging program,the computer is configured to block display of the received firstinstant message on the exposed output device during the concurrentpresentation mode operation of the presentation program with the firstmode operation of the instant messaging program.
 5. A computer programproduct encoded in a computer-readable storage medium, comprisinginstructions that, when executed by a computer executing an instantmessaging program that operates in multiple different modes, cause thecomputer to: while the instant messaging program is operating in a firstmode, receive a first instant message; responsive to receipt of thefirst instant message during the first mode operation of the instantmessaging program and further responsive to determining that thecomputer is driving the exposed output device, block the first instantmessage; while the instant messaging program is operating in a secondmode, receive a second instant message; responsive to receipt of thesecond instant message during the second mode operation of the instantmessaging program and further responsive to determining that thecomputer is driving the exposed output device, display an identificationof a sender of the second instant message and query to determine whethercontent of the second instant message should be displayed on the exposedoutput device being driven by the computer; while the instant messagingprogram is operating in a third mode, receive a third instant message;responsive to receipt of the third instant message during the third modeoperation of the instant messaging program and further responsive todetermining that the computer is driving the exposed output device, eachof: determine that a sender of the third instant message is on apriority list; and responsive to determining that the sender of thethird instant message is on the priority list: display an identificationof the sender of the third instant message; and query to determinewhether content of the third instant message should be displayed on theexposed output device being driven by the computer.
 6. The computerprogram product of claim 5, where, the instructions that, when executedby the computer, cause the computer to: determine that the computer isdriving the exposed output device cause the computer to determine thatthe computer is driving the exposed output device with output of apresentation generated by a presentation program operating in apresentation mode concurrently with the instant messaging programoperating in the first mode; and block the first instant messageaccording to the first mode operation of the instant messaging programcause the computer to block display of the received first instantmessage on the exposed output device during the concurrent presentationmode operation of the presentation program with the first mode operationof the instant messaging program.